<?php
namespace app\services;
use think\facade\Env;
use think\Exception;

use think\Queue;
use think\Db;

use app\admin\model\Auth;
/**
 * 队列 生产者
 */
class MqInsertService
{
    protected $list_name;//队列名
    protected $list_class;//队列执行路由

    public function __construct($list_name,$list_class){

        $this->list_name  = $list_name;
        $this->list_class = $list_class;

    }

    /**
     * 即时消费
     * @Author   lf
     * @DateTime 2019-06-17T17:16:22+0800
     * @param    [type]                   $jobData [description]
     */
    public function addJob($jobData)
    {
        // jobData 为对象时，存储其public属性的键值对

        // 将该任务推送到消息队列，等待对应的消费者去执行
        $isPushed = Queue::push( $this->list_class , $jobData , $this->list_name);

        // database 驱动时，返回值为 1|false  ;   redis 驱动时，返回值为 随机字符串|false
        if( $isPushed !== false ){
            return true;
        }else{
            return false;
        }
    }

    /**
     * 延迟消费
     * @Author   lf
     * @DateTime 2019-06-17T17:16:43+0800
     * @param    [type]                   $jobData [description]
     */
    public function addLaterJob($jobData,$laterTime)
    {
        //jobData 为对象时，存储其public属性的键值对

        //将该任务推送到消息队列，等待对应的消费者去执行
        $isPushed = Queue::later($laterTime, $this->list_class , $jobData , $this->list_name);
        // trace('延迟消费','info');

        // database 驱动时，返回值为 1|false  ;   redis 驱动时，返回值为 随机字符串|false
        if( $isPushed !== false ){
            return true;
        }else{
            return false;
        }
    }

}